@爆米花
2年前 提问
1个回答

微服务通用安全性实现技术包括哪些

齐士忠
2年前

微服务通用安全性实现技术包括以下这些:

  • 单向散列加密技术:单向散列加密算法常用于生成消息摘要(Message Digest),其主要特点在于单向不可逆和密文长度固定,同时也具备“碰撞”少的优点,即明文的微小差异就会导致所生成密文完全不同。同时可以通过加盐(Salt)的方式进一步提高破解的难度。所谓加盐,就是在初始化明文数据时,由系统自动往这个明文里添加一些附加数据再散列。当使用该数据时,系统为用户提供的代码撒上同样的“盐”,然后散列并再比较散列值以判断明文是否正确。这个“盐”值是由系统随机生成的,并且只有系统知道。这样即便在两个不同场景下使用了同样的明文,由于系统每次生成的盐值不同,它们的散列值也不同。常见的单向散列加密算法实现包括MD5和SHA。

  • 对称加密技术:对称加密(Symmetric Encryption)中加密和解密采用统一算法,密钥对称。使用对称密钥的优点在于简单、高效、长秘钥难破解,但需要确保密钥交换过程的安全性。DES 和AES算法是目前对称加密的主要实现方式。

  • 非对称加密技术:区别于对称加密在加密和解密时使用同一密钥,非对称加密(Asymmetric Encryption)需要两个密钥来进行加密和解密,这两个密钥分别称为公钥(Public Key)和私钥(Private Key)。首先乙方生成一对密钥(公钥和私钥),并将公钥向甲方公开,得到该公钥的甲方使用该公钥对机密信息进行加密后发送给乙方,乙方再用自己保存的私钥对加密后的信息进行解密。在传输过程中,即使攻击者截获了传输的密文,并得到了乙的公钥,也无法破解密文,因为只有乙的私钥才能解密密文。同样,如果乙要回复加密信息给甲,那么需要甲先公布自己的公钥给乙用于加密,甲自己保存乙的私钥用于解密,甲乙之间使用非对称加密的方式完成敏感信息的安全传输。显然非对称加密在算法实现和密钥管理上比较复杂,目前典型的实现有RSA算法。

  • 摘要认证技术:摘要认证中,摘要的对象是客户端参数和服务器端响应,即在请求-应答式交互过程中,需要站在发生交互的客户端和服务器端分别判断对方是否合法。摘要认证的过程也比较简单,即通过MD5或SHA算法结合加盐机制进行摘要的生成和比对以判断信息是否被篡改。整个认证就是一个客户端参数摘要生成→服务器端参数摘要验证→服务器端响应摘要生成→客户端响应摘要验证的闭环交互过程。这里需要考虑如何保证客户端和服务器端使用同一个Salt,服务器端可以在认证之前通过某种方式把Salt发给需要接入的客户端。

  • 签名认证技术:摘要认证的主要问题就是如何防止Salt泄露,而签名认证则不使用Salt,基本思路是使用非对称加密算法加密数字摘要,是混合算法的一种具体应用。同摘要认证一样,签名认证也通过客户端参数签名生成→服务端参数签名验证→服务端响应签名生成→客户端响应签名验证完成闭环。摘要认证中通常使用MD5with RSA和SHA1with RSA等算法组合。